#ifndef MARTIALE_H
#define MARTIALE_H


#include <string>
#include <iostream>

/**
 * Structure permettant la gestion des compétences martiales, contient
 * toutes les informations nécessaire à l'affichage de celles-ci.
 *
 * @author Johan "Solo" Luisier
 */
class Martiale
{
 public:
  Martiale(const std::string& nom, const std::string masse,
	   const char& taille, const std::string& type,
	   const unsigned int& vitesse, const std::string& freq,
	   const std::string& portee, const std::string& pm,
	   const std::string& grand, const bool& aff,
	   const unsigned int& large, const unsigned int& restreint);
  ~Martiale();
  /**
   * Surcharge de l'opérateur <<, permet d'obtenir un affichage
   * simple. Est utiliséuniquement pour l'affichage des compétences dans
   * la feuille de perso, c'est pourquoi on a une syntaxe LaTeX pour un
   * tableau.
   *
   * @param os flot de sortie.
   * @param mart compétence martiale que l'on veut afficher.
   * @return le flot une fois modifié. 
   */
  friend std::ostream& operator<<(std::ostream& os, const Martiale& mart);
  std::string Nom_arme;          /**< Nom de l'arme */
  std::string poids;             /**< Poids de l'arme (En LaTeX) */
  char taille_arme;              /**< Taille */
  std::string type_degats;       /**< Type de dégâts */
  unsigned int Vitesse;          /**< Facteur de vitesse */
  std::string Frequence,         /**< Fréquence du tir */
    Portee;                      /**< Portée du tir */
  std::string degats_PM,         /**< Dégats sur cible P ou M (En
				    LaTeX) */
    degats_G;                    /**< Dégats sur cible G ou plus (En
				    LaTeX) */
  bool afficher_suite;           /**< Afficher la suivante */
  unsigned int groupe_large;     /**< Groupe large */
  unsigned int groupe_restreint; /**< Groupe restreint */
};

#endif // MARTIALE_H
